﻿using System;

namespace EfficientlyLazy.PhotoFramer.Entity
{
    public struct GlobalSettingName<T>
    {
        public string Name { get; private set; }
        public Type ValueType { get; private set; }
        public T Default { get; private set; }
        public string Category { get; private set; }
        public string DisplayName { get; private set; }
        public string Description { get; private set; }

        public GlobalSettingName(string name, T defaultValue)
            : this()
        {
            Name = name;
            ValueType = typeof(T);
            Default = defaultValue;
            Category = string.Empty;
            DisplayName = string.Empty;
            Description = string.Empty;
        }

        public static GlobalSettingName<T> New(string name, T defaultValue)
        {
            return new GlobalSettingName<T>
                       {
                           Name = name,
                           Default = defaultValue
                       };
        }
    }
}